#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <pthread.h>
#include <errno.h>
#include <string.h>


#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

// 线程函数：运行一段时间后退出
void *thread_func(void *arg) {
    int id = *(int *)arg;
    printf("线程 %d 启动\n", id);
    sleep(2);  // 模拟线程工作
    printf("线程 %d 退出\n", id);
    return NULL;
}

int main() {
    pthread_t tid[5];
    int ids[5];
    int i;

    // 创建5个线程，但不回收
    for (i = 0; i < 5; i++) {
        ids[i] = i;
        pthread_create(&tid[i], NULL, thread_func, &ids[i]);
    }

    // 等待子线程完成工作
    sleep(3);
    
    // 打印进程ID，供外部工具查看
    //printf("主进程ID: %d，请使用 ps -T -p %d 查看线程状态\n", getpid(), getpid());

    system("ps -eT ");
    
    // 保持主进程运行，方便观察
    while(1) {
        sleep(1);
    }

    return 0;
}